home *** CD-ROM | disk | FTP | other *** search
-
- SpawnGroup = {};
- SpawnGroup.Prob = {};
- SpawnGroup.Prob.miner = 0.30;
- SpawnGroup.Prob.squad = 1.0;
- SpawnGroup.Prob.bomber = 0.60;
- --SpawnGroup.Prob.kamikaze = 1.0;
- --SpawnGroup.Prob.driller = 1.0;
- --SpawnGroup.Prob.psychic = 1.0;
- --SpawnGroup.Prob.ninja = 1.0;
- --SpawnGroup.Prob.spiker = 1.0;
- SpawnGroup.Prob.stacker = 0.40;
- --SpawnGroup.Prob.basic = 0.40;
- SpawnGroup.ProbTotal = 0.0;
- SpawnGroup.SpawnSpeed = 0.5;
- SpawnGroup.Time = 0.0;
- SpawnGroup.Spawners = {};
- SpawnGroup.MaxSpawn = 100;
-
- function SpawnGroup.Update()
-
- SpawnGroup.Time = SpawnGroup.Time + SpawnGroup.SpawnSpeed * GameTimeDiff;
-
- --if( G.KeyTriggered( "F5" ) ) then
- --Level.LoadLevelData();
- --SpawnGroup.Time = 0;
- --G.SetNumPoints( 100 );
- --end
-
- --SpawnGroup.SpawnSpeed = 0.1 + GameTime / 200.0;
-
- while( SpawnGroup.Time > 1.0 ) do
-
- SpawnGroup.Time = SpawnGroup.Time - 1.0;
-
- if( NumInvaders >= SpawnGroup.MaxSpawn ) then
- return;
- end
-
- local rand = math.random();
- rand = rand * SpawnGroup.ProbTotal;
-
- local total = 0.0;
- for invadername,prob in pairs( SpawnGroup.Prob ) do
- total = total + prob;
- if( total > rand ) then
- local invader = G.Allocate( invadername );
- local randpos = math.random();
- local tpos = Vector3( 250 + math.cos(randpos*6.28) * 245 ,5, 250 + math.sin(randpos*6.28) * 245 );
- invader.SetPosition( tpos );
- invader.Init();
- return;
- end
- end
- end
- end
-
- function SpawnGroup.Total()
- SpawnGroup.ProbTotal = 0;
- for invadername,prob in pairs( SpawnGroup.Prob ) do
- SpawnGroup.ProbTotal = SpawnGroup.ProbTotal + prob;
- end
- end
-
- function Spawning()
- SpawnGroup.Total();
- SpawnGroup.Update();
- end
-
- GMain[ "Spawning" ] = Spawning;